home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 April / EnigmA AMIGA RUN 17 (1997)(G.R. Edizioni)(IT)[!][issue 1997-04][EAR-CD].iso / EARCD / comm / fido / CrashMail125.lha / CrashMail / rexx / ParseRFC.rexx < prev    next >
OS/2 REXX Batch file  |  1996-09-11  |  1KB  |  72 lines

  1. /* $VER: ParseRFC 1.0 (13.05.94)
  2.  
  3.    by Johan Billing
  4.  
  5.    This ARexx scripts shows you how you can parse the RFC messages generated
  6.    with the ROBOTNAME function in CrashMail.
  7.  
  8.    Syntax: rx ParseRFC.rexx <file>
  9.  
  10. */
  11.  
  12. IF ~SHOW(Libraries,'rexxsupport.library') THEN
  13.     IF ~ADDLIB("rexxsupport.library",0,-30,0) THEN EXIT
  14.  
  15. parse arg file
  16.  
  17. toname=""
  18. toaddr=""
  19. fromname=""
  20. fromaddr=""
  21. date=""
  22. subject=""
  23.  
  24. call open('file',file,'R')
  25.  
  26. /* keep going */
  27.  
  28. kg=TRUE
  29.  
  30. do while kg=TRUE
  31.  str = readln('file')
  32.  
  33.  if eof('file') then do
  34.    kg=FALSE
  35.  end
  36.  else if length(str)=0 then do
  37.  
  38.    /* *** Empty line = End of header *** */
  39.  
  40.    kg=FALSE
  41.  end
  42.  else do
  43.    if left(str,5)="From:" then parse var str 'From: 'fromaddr'@'dummy' ('fromname')'
  44.    if left(str,3)="To:" then parse var str 'To: 'toaddr'@'dummy' ('toname')'
  45.    if left(str,5)="Date:" then date=right(str,length(str)-6)
  46.    if left(str,8)="Subject:" then subject=right(str,length(str)-9)
  47.  end
  48. end
  49.  
  50. do while ~eof('file')
  51.    str = readln('file')
  52.  
  53.    /* Process text here! */
  54.  
  55. end
  56.  
  57. call close('file')
  58.  
  59. /* This IS just a stupid demo... */
  60.  
  61. say "From:" fromname "(" || fromaddr || ")"
  62. say "  To:" toname "(" || toaddr || ")"
  63. say "Subj:" subject
  64. say "Date:" date
  65. say
  66.  
  67. /* If we exit 10, CrashMail will import the message. If you set the exit level
  68.    to 0, the message will be killed. If you want CrashMail to stop tossing,
  69.    return 20 or higher */
  70.  
  71. exit 10
  72.